Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
41 lines (31 loc) · 1.41 KB

3.12.5 - 协程客户端超时规则.md

File metadata and controls

41 lines (31 loc) · 1.41 KB

协程客户端超时规则

在Swoole版本>=4.2.10生效

为了统一各个客户端混乱的超时规则, 避免开发者需要处处谨慎设置, 从4.2.10版本开始所有协程客户端统一超时规则如下:

全局Socket超时配置项

以下配置项可通过Co::set方法配置, 如

Co::set([
    'socket_connect_timeout' => 1,
	'socket_timeout' => 5
]);
  • socket_connect_timeout, 建立socket连接超时时间, 默认为1(秒)

  • socket_timeout, socket读写操作超时时间, 默认为-1, 即永不超时

即: 所有协程客户端默认连接超时时间为1s, 其他读写操作若未指定超时时间则永不超时

超时时间设置规则

  • -1: 永不超时
  • 0: 不更改超时时间
  • 其它大于0的值: 设置相应秒数的超时定时器, 最大精度为1毫秒

生效范围

  • Co::set => 全局
  • 通过set等方法设置的 => 被设置的客户端
  • 读写方法的函数传参 => 方法调用的读写操作

注意

文档中旧有的, 与此有出入的超时时间设定规则, 皆以此规则为准

PHP官方网络库超时

在Swoole中很多PHP官方提供的网络库API也可以协程化变成异步非阻塞IO, 它们的超时时间受default_socket_timeout配置影响, 开发者可以通过ini_set('default_socket_timeout', 60)这样来单独设置它, 它的默认值是60.